Effect capabilities for Haskell: Taming effect interference in monadic programming

نویسندگان

  • Ismael Figueroa
  • Nicolas Tabareau
  • Éric Tanter
چکیده

Article history: Received 13 March 2015 Received in revised form 19 November 2015 Accepted 22 November 2015 Available online 28 November 2015

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Effective Aspects: A Typed Monadic Embedding of Pointcuts and Advice

Aspect-oriented programming (AOP) aims to enhance modularity and reusability in software systems by offering an abstraction mechanism to deal with crosscutting concerns. However, in most general-purpose aspect languages aspects have almost unrestricted power, eventually conflicting with these goals. In this work we present Effective Aspects: a novel approach to embed the pointcut/advice model o...

متن کامل

Monadic I/o in Haskell 1.3

We describe the design and use of monadic I/O in Haskell 1.3, the latest revision of the lazy functional programming language Haskell. Haskell 1.3 standardises the monadic I/O mechanisms now available in many Haskell systems. The new facilities allow more sophisticated text-based application programs to be written portably in Haskell. Apart from the use of monads, the main advances over standar...

متن کامل

Semantics of fixIO

Recent work on recursion over the values of monadic actions resulted in the introduction of a family of fixed point operators, one for each different kind of monadic effect. In the context of Haskell, the function fixIO is the corresponding operator for the IO monad. Unfortunately, both the IO monad and fixIO are language primitives in Haskell, i.e. they can not be defined within the language i...

متن کامل

Communicating Haskell Processes: Composable Explicit Concurrency using Monads

Writing concurrent programs in languages that lack explicit support for concurrency can often be awkward and difficult. Haskell’s monads provide a way to explicitly specify sequence and effects in a functional language, and monadic combinators allow composition of monadic actions, for example via parallelism and choice – two core aspects of Communicating Sequential Processes (CSP).We show how t...

متن کامل

Semantics of value recursion for Monadic Input/Output

Monads have been employed in programming languages for modeling various language features, most importantly those that involve side effects. In particular, Haskell’s IO monad provides access to I/O operations and mutable variables, without compromising referential transparency. Cyclic definitions that involve monadic computations give rise to the concept of value-recursion, where the fixed-poin...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Sci. Comput. Program.

دوره 119  شماره 

صفحات  -

تاریخ انتشار 2016